# 作业：
# 1、做一个学生点名系统，系统里支持：存入学生、更改学生、删除学生、点到学生姓名方法
#
# 存入学生（姓名、年龄、家庭地址、手机号）： 存入成功后，提示xxx存入成功
# 更改学生（姓名、年龄、家庭地址、手机号）：可以修改学生内容的任意一个字段
# 删除学生：删除的学生将不在展示
# 展示全部学生：可以看到全部的学生姓名
# 点到学生姓名：随机抽取任意一个存在的学生信息，然后打印：到！。举例： 刘闯到！
#
# 以上内容，需要连接数据库，每次的数据都需要增、删、改、查去做
#
# student表：name、age、address、phone_number
import random

class Student:
    def __init__(self, name, age, address, phone_number):
        self.name = name
        self.age = age
        self.address = address
        self.phone_number = phone_number

class StudentMan:
    def __init__(self):
        self.students = []

    def add_student(self, name, age, address, phone_number):
        student = Student(name, age, address, phone_number)
        self.students.append(student)
        print(f"{name}存入成功")

    def update_student(self, name, new_age=None, new_address=None, new_phone_number=None):
        for student in self.students:
            if student.name == name:
                if new_age is not None:
                    student.age = new_age
                if new_address is not None:
                    student.address = new_address
                if new_phone_number is not None:
                    student.phone_number = new_phone_number
                print(f"{name}信息已更新")
                return
        print(f"找不到学生：{name}")

    def remove_student(self, name):
        for student in self.students:
            if student.name == name:
                self.students.remove(student)
                print(f"{name}已删除")
                return
        print(f"找不到学生：{name}")

    def show_students(self):
        print("全部学生姓名：")
        for student in self.students:
            print(student.name)

    def call_students(self):
        if len(self.students) > 0:
            random_student = random.choice(self.students)
            print(f"{random_student.name}到！")
        else:
            print("学生列表为空")

sms = StudentMan()

# 存入学生
sms.add_student("郑宝齐", 25, "沈阳市沈北新区", "13888888888")
sms.add_student("王双", 26, "沈阳市沈北新区", "13999999999")

# 更改学生信息
sms.update_student("郑宝齐", new_phone_number="13666666666")
sms.update_student("王双", new_age=18, new_address="沈阳市皇姑区")

# 删除学生
sms.remove_student("王双")

# 展示全部学生
sms.show_students()

# 点到学生姓名
sms.call_students()




#
# 2、点餐管理系统
# 1》、餐馆可以新增菜品、下架菜品、修改菜品
# 2》、每个菜品，都有对应的库存，所有菜品的库存均为999，每出一道菜，库存-1
# 菜品有对应的价格，餐厅老板定义价格每道菜不允许超过15元，没有小数单位，均为整数
# 3》、餐馆后台有点赞系统，能够收集客户对菜品的喜好，0~5分
# 4》、有菜品评分提报功能，对平均分数（菜品总分/打分人数）低于3分的菜品进行强制下架；
#
#
# 客户端
# perper = 0 类属性
# 总分= 0
# 1》、客户可以进行点餐 调用父类
# 2》、每个客户的起始钱包均为200，订餐后扣减对应金额
# 3》、可以为每个菜进行打分